home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-12-07 | 9.6 KB | 269 lines | [TEXT/MEDT] |
- Modula-2 single-pass compiler error codes and restrictions
-
- NW 4.1.84 / rev 10.7.84 / rev 29.6.86 / Assembler 9.8.87 B.St. / rev 21.3.91 HS.
-
-
- Syntax errors
-
- - 10 identifier expected
- - 11 , comma expected
- - 12 ; semicolon expected
- - 13 : colon expected
- - 14 . period expected
- - 15 ) right parenthesis expected
- - 16 ] right bracket expected
- - 17 } right brace expected
- - 18 = equal sign expected
- - 19 := assignment expected
- - 20 END expected
- - 21 .. ellipsis expected
- - 22 ( left parenthesis expected
- - 23 OF expected
- - 24 TO expected
- - 25 DO expected
- - 26 UNTIL expected
- - 27 THEN expected
- - 28 MODULE expected
- - 29 illegal digit, or number too large
- - 30 IMPORT expected
-
- - 31 factor starts with illegal symbol
- - 32 identifier, (, or [ expected
- - 33 identifier, ARRAY, RECORD, SET, POINTER, PROCEDURE, (, or [ expected
- - 34 Type followed by illegal symbol
- - 35 statement starts with illegal symbol
- - 36 declaration followed by illegal symbol
- - 37 statement part is not allowed in definition module
- - 38 export list not allowed in program module
- - 39 EXIT not inside a LOOP statement
- - 40 illegal character in number
- - 41 number too large
- - 42 comment without closing *)
- - 44 expression must contain constant operands only
- - 45 control character within string
- - 46 too many digits (> 30)
-
- Undefined
-
- - 50 identifier not declared or not visible
-
-
- Class and type errors
-
- - 51 object should be a constant
- - 52 object should be a type
- - 53 object should be a variable
- - 54 object should be a procedure
- - 55 object should be a module
- - 56 type should be a subrange
- - 57 type should be a record
- - 58 type should be an array
- - 59 type should be a set
- - 60 illegal base type of set
- - 61 incompatible type of label or of subrange bound
- - 62 multiply defined case (label)
- - 63 low bound > high bound
- - 64 more actual than formal parameters
- - 65 fewer actual than formal parameters
-
- 66 - 73 mismatch between parameter lists in def and in impl modules
- - 66 more parameters in I than in D
- - 67 parameters with equal types in I have different types in D
- - 68 mismatch between VAR specifications
- - 69 mismatch between type specifications
- - 70 more parameters in D than in I
- - 71 mismatch between result type specifications
- - 72 function in D, pure procedure in I
- - 73 procedure in D has parameters, but not in I
-
- - 74 code or forward procedure cannot be declared in definition module
- - 75 illegal type of control variable in FOR statement
- - 76 procedure call of a function
- - 77 identifiers in heading and at end do not match
- - 78 redefinition of a type that is declared in definition part
- - 79 imported module not found
- - 80 unsatisfied export list entry
- - 81 illegal type of procedure result
- - 82 illegal base type of subrange
- - 83 illegal type of case expression
- - 84 writing of symbol file failed
- - 85 keys of imported symbol files do not match
- - 86 error in format of symbol file
- - 87 CARDINAL from symbol file not compatible with this compiler
- - 88 symbol file not successfully opened
- - 89 there are procedures without bodies
-
- Implementation restrictions of compiler
-
- - 90 in {a..b}, if a is a constant, b must also be a constant
- - 91 identifier buffer overflow
- - 92 too many cases
- - 93 too many exit statements
- - 94 index type of array must be a subrange
- - 95 subrange bound must be less than 2^15
- - 96 too many global modules
- - 97 too many procedure in definition module
- - 98 too many structure elements in definition module
-
-
- Multiple definition
-
- - 100 multiple definition within the same scope
-
-
- Class and type incompatibilities
-
- - 101 illegal use of type
- - 102 illegal use of procedure
- - 103 illegal use of constant
- - 104 illegal use of type
- - 105 illegal use of procedure
- - 106 illegal use of expression
- - 107 illegal use of module
- - 108 constant index out of range
- - 109 indexed variable is not an array, or the index has the wrong type
- - 110 record selector is not a field identifier
- - 111 dereferenced variable is not a pointer
- - 112 operand type incompatible with sign inversion
- - 113 operand type incompatible with NOT
- - 114 x IN y: type(x) # basetype(y)
- - 115 type of x cannot be the basetype of a set, or y is not a set
- - 116 {a..b}: type of either a or b is not equal to the base type of the set
- - 117 incompatible operand types
- - 118 operand type incompatible with *
- - 119 operand type incompatible with /
- - 120 operand type incompatible with DIV
- - 121 operand type incompatible with MOD
- - 122 operand type incompatible with AND
- - 123 operand type incompatible with +
- - 124 operand type incompatible with -
- - 125 operand type incompatible with OR
- - 126 operand type incompatible with relation
-
- 127 - 131 assignment of a procedure P to a variable of procedure type T
- - 127 procedure must have level 0
- - 128 result type of P does not match that of T
- - 129 mismatch of a parameter of P with the formal type list of T
- - 130 procedure has fewer parameters than the formal type list
- - 131 procedure has more parameters than the formal type list
-
- - 132 assignment of a negative integer to a cardinal variable
- - 133 incompatible assignment
- - 134 assignment to non-variable
- - 135 type of expression in IF, WHILE, UNTIL clause must be BOOLEAN
- - 136 call of an object which is not a procedure
- - 137 type of VAR parameter is not identical to that of actual parameter
- - 138 constant out of legal range
- - 139 type of RETURN expression differs from procedure type
- - 140 illegal type of CASE expression
- - 141 step in FOR clause cannot be 0
- - 142 illegal type of control variable
- - 143 assignment to dynamic array is illegal
- - 144 incorrect type of parameter of standard procedure
- - 145 this parameter should be a type identifier
- - 146 string is too long
- - 147 incorrect priority specification
-
-
- Name collision
-
- - 150 exported identifier collides with declared identifier
-
-
- Extra messages for MC68000 Assembler
-
- - 172 error in scaling factor
- - 173 there are unsatisfied forward references
- - 174 sub-expressions not allowed here
- - 175 too many forward references
- - 176 forward references not allowed here
- - 177 number expected
- - 178 illegal use of register
- - 179 ENDINIT expected
- - 180 PC or address register expected
- - 181 register expected
- - 182 address or data register expected
- - 183 address register expected
- - 184 data register expected
- - 185 length qualifier expected
- - 186 illegal length qualifier
- - 187 operand starts with illegal symbol
- - 188 illegal indirect addressing mode
- - 189 offset needed for this addressing mode
- - 190 value must be in range 0 thru 32767
- - 191 trap vector must be in range 0 thru 15
- - 192 quick value or shift counter must be in range 1 thru 8
- - 193 branch too far or offset out of range
- - 194 immediate or absolute operand out of range
- - 195 bit number must be in range 0 thru 7
- - 196 bit number must be in range 0 thru 31
- - 197 comment must start with a blank, extra symbols ignored
- - 198 too many symbols or forward references
- - 199 error reading source file
-
-
- Implementation restrictions of system
-
- - 200 not implemented
- - 201 integer too small for sign inversion
- - 202 set element outside word range
- - 203 overflow in multipliaction
- - 204 overflow in division
- - 205 division by zero, or modulus with negative value
- - 206 overflow in addition
- - 207 overflow in subtraction
- - 208 cardinal value assigned to integer variable too large
- - 209 set size too large
- - 210 array size too large
- - 211 address too large
- - 212 character array component cannot correspond to VAR parameter
- - 213 illegal store operation (compiler error?)
- - 214 set elements must be constants
- - 215 expression too complex (stack overflow)
- - 216 double precision multiply and divide are not implemented
- - 217 long cardinal value assigned to long integer variable too large
- - 218 assignment of a negative integer to a long cardinal variable
- - 222 output file not opened (directory full?)
- - 223 output incomplete (disk full?)
- - 224 too many external references
- - 225 too many strings
- - 226 program too long
- - 227 fixup table overflow
-
- MC68000:
-
- - 230 expression not loadable (implementation restriction)
- - 231 expression not addressable (implementation restriction)
- - 232 expression not allowed (implementation restriction)
- - 233 illegal expression (implementation restriction)
- - 234 register res. error (e.g. code produced in declaration part)
- - 235 illegal selector for contant index / field
- - 236 too many WITH nested (> 4)
- - 237 illegal operand (implementation restriction)
- - 238 illegal size of operand (implementation restriction)
- - 239 type should be LONGREAL
- - 240 parameter should by dynamic array parameter
- - 241 illegal type for floating point operation (implementation restriction)
- - 244 implementation restriction for floating point comparison
- - 245 illegal type for floating point assignment (implementation restriction)
- - 247 argument must be a positive constant in the MC68881 Constant ROM
-
- Warnings:
-
- - 260 Warning: Type transfer functions will be removed from Modula 2
- - 261 Warning: Export in DEFINITION Module will be removed from Modula 2
- - 262 Warning: Import of module SYSTEM
- - 263 Warning: Ident never used
-
- Code generator emergency brake's:
-
- - 285 illegal floating point move
- - 286 illegal offset or range distance too big
- - 287 illegal size (byte) for A-register operation
- - 288 illegal size for A-register operation
- - 292 illegal size for A-register move
- - 293 illegal size (byte) for A-register load
- - 298 implementation restriction, effective address assertion
- - 299 implementation restriction, compiler assertion
- - 300 too many constants in enumeration type
-